
import {baseUrl} from "../../initial.js"
import vm from '@/main'
const install=(Vue,vm)=>{
	Vue.prototype.$u.http.setConfig({
		baseUrl: baseUrl, //请求地址
		// baseUrl: 'http://192.168.1.9:8081', //请求地址
		loadingText: '加载中...',
		loadingTime: 800,
		header: {
			'content-type': 'application/x-www-form-urlencoded;charset=UTF-8'
		},
		showLoading: true,
	});
	// 请求拦截，配置Token等参数
	Vue.prototype.$u.http.interceptor.request = (config) => {
		// config.header.Token = 'xxxxxx';
		
		// 方式一，存放在vuex的token，假设使用了uView封装的vuex方式，见：https://uviewui.com/components/globalVariable.html
		if(config.url=='/user/login'){
			config.header.Authorization=''
			delete config.header.Authorization
		}else{
			config.header.Authorization = 'Bearer '+vm.vuex_token;
		}
		
		// 方式二，如果没有使用uView封装的vuex方法，那么需要使用$store.state获取
		// config.header.token = vm.$store.state.token;
		
		// 方式三，如果token放在了globalData，通过getApp().globalData获取
		// config.header.token = getApp().globalData.username;
		
		// 方式四，如果token放在了Storage本地存储中，拦截是每次请求都执行的，所以哪怕您重新登录修改了Storage，下一次的请求将会是最新值
		// const token = uni.getStorageSync('token');
		// config.header.token = token;
		
		return config; 
	}
	//响应拦截x
	Vue.prototype.$u.http.interceptor.response = (res) => {
		console.log("res:",res)
		// return res.data;
		
		// 如果把originalData设置为了true，这里得到将会是服务器返回的所有的原始数据
		// 判断可能变成了res.statueCode，或者res.data.code之类的，请打印查看结果
		if(res.code == 200) {
			// 如果把originalData设置为了true，这里return回什么，this.$u.post的then回调中就会得到什么
			return res;  
		}else if(res.code == 401){
			vm.$u.vuex('vuex_user','')
			vm.$u.vuex('vuex_token', '')
			// uni.showModal({
			// 	title:'提示',
			// 	content:res.message,
			// 	confirmText:'去登录',
			// 	success: function (resss) {
			// 		let code
			// 	        if (resss.confirm) {
			// 				console.log('用户点击确定');
			// 				// uni.login({
			// 				// 	provider: 'weixin',
			// 				// 	success: (loginRes) => {
			// 				// 		code=loginRes.code
			// 				// 	}
			// 				// });
							
			// 				// uni.getUserProfile({
			// 				// 	desc: '获取用户头像',
			// 				// 	lang: 'zh_CN',
			// 				// 	success: async (infoRes) => {
			// 				// 		let res = await vm.$u.api.wxlogin({
			// 				// 			code: code
			// 				// 		})
			// 				// 		vm.$u.vuex('vuex_token', res.data.token)
							
			// 				// 		let res1 = await vm.$u.api.getUserInfo({
			// 				// 			sessionKey: res.data.sessionKey,
			// 				// 			encryptedData: infoRes.encryptedData,
			// 				// 			iv: infoRes.iv
			// 				// 		})
			// 				// 		if (res1.code === 200) {
			// 				// 			vm.$u.vuex('vuex_user', res1.data)
			// 				// 		}
			// 				// 	}
			// 				// });
			// 	        } else if (resss.cancel) {
			// 	            console.log('用户点击取消');
			// 	        }
			// 	    }
			// })
			// return res;
		} else if(res.code == 501){
			uni.showToast({
				title:res.message,
				icon:'none'
			})
		}else return res;
		
		

	}
}

export default{
	install
}